package com.chang.third.utils;


import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component;

/**
 * @author: changzhenxi
 * @date: 2024年11月26日 17:46
 * @Version: 1.0
 * @description:
 */
@Slf4j
@Component
public class EmailTools {

    @Value("${spring.mail.username}")
    private String emailSender;

    @Resource
    private JavaMailSender javaMailSender;

    public Boolean sendEmail(String email, String code) {

        if (StringUtils.isBlank(email)) {
            throw new RuntimeException("未填写收件人邮箱");
        }

        SimpleMailMessage message = new SimpleMailMessage();
        message.setSubject("商城账号注册验证码");
        message.setText("HELLO!\n\n你正在注册一个商城账号\n\n尊敬的: " + email + "校验验证码为: " + code + ",有效期5分钟，请不要把验证码信息泄露给其他人,测试专用");
        message.setTo(email);

        try {
            // 对方看到的发送人（发件人的邮箱，根据实际业务进行修改，一般填写的是企业邮箱）
            message.setFrom(emailSender);
            // 发送邮件
            javaMailSender.send(message);
            // 将生成的验证码存入Redis数据库中，并设置过期时间
            // valueOperations.set(key, code, 5L, TimeUnit.MINUTES);
            log.info("邮件发送成功");
            return true;
        } catch (Exception e) {
            log.error("邮件发送出现异常");
            log.error("异常信息为" + e.getMessage());
            log.error("异常堆栈信息为-->");
            return false;
        }

    }
}
